A network element (such as a router or switch) transmits and receives network data using one or more ports of that network element. For each incoming unit of network data (e.g., packet, frame, datagram, etc.), the network element makes a forwarding decision, considering user configuration, the contents of the packet, the state of the switch, including “forwarding tables”, and negotiated protocol information. The forwarding decision indicates whether the unit of network data is to be dropped or forwarded, and if so, to which port (or ports) the unit of network data is to be forwarded, including if the packet is sent to a central processing unit (CPU) on the control plane of the network element.
A network can drop a unit of network data when the network data should have been forwarded for a number of reasons including software bugs, insufficient internal buffering resources, or incorrect programming of switch state due to software or firmware problems. Additionally incorrect programming can arise due to errors on one or more buses that connect the network element to the controlling software. Furthermore, spontaneous errors in the state used for forwarding data can occur because of, for example, hardware bugs, corruption on internal buses internal to the forwarding hardware, bit flips on account of cosmic rays in forwarding tables or buffers, failing memories or logic caused by manufacturing defects, age, temperature, or physical stress. Additionally, improper mechanical connections between line cards and fabric cards can result in bit errors on the internal connections of the network element.